home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / amos / eaissu3b.lha / Source_Code / AK_VUmeter_Cross.AMOS / AK_VUmeter_Cross.amosSourceCode
AMOS Source Code  |  1995-12-30  |  3KB  |  135 lines

  1. Dim P(31)
  2. Global SETTING,P()
  3.  
  4. F$=Fsel$("","","Select a Pro/Sound/Noise","Tracker module to use")
  5.  
  6. If F$="" : Edit : End If 
  7.  
  8. If Exist(F$)
  9.    Track Load F$,3 : Track Play 3
  10.    Track Loop On : Led Off 
  11. Else 
  12.    Edit 
  13. End If 
  14.  
  15. Proc PREPARE
  16.  
  17. Do 
  18.    Proc _VU5[200]
  19. Loop 
  20.  
  21. Procedure PREPARE
  22.    Load "EAIssue3a:Data/VU_Cross",8 : Unpack 8 To 4 : For N=0 To 31 : Colour N,0 : Next N
  23. End Proc
  24.  
  25. Procedure _VU5[SETTING]
  26.    TLP=0 : Hide On 
  27.    
  28.    G=Rnd(3)
  29.    
  30.    If G=0
  31.       DAT2:
  32.       Data $0,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$FFF,$EEE,$DDD,$CCC
  33.       Data $BBB,$AAA,$999,$999,$888,$666,$555,$444,$222,$333,$999
  34.       Data $888,$777,$666,$555,$444,$333,$58C,$BB0,$99F
  35.       Restore DAT2 : For OO=0 To 31 : Read P(OO) : Next OO
  36.    End If 
  37.    
  38.    If G=1
  39.       DAT3:
  40.       Data $0,$49,$3A,$3B,$2C,$1D,$1E,$F,$FFF,$EEE,$DDD,$CCC,$BBB
  41.       Data $AAA,$999,$999,$888,$666,$555,$444,$222,$333,$900,$A00
  42.       Data $B00,$C00,$D00,$E00,$F00,$58C,$BB0,$99F
  43.       Restore DAT3 : For OO=0 To 31 : Read P(OO) : Next OO
  44.    End If 
  45.    
  46.    If G=2
  47.       DAT4:
  48.       Data $0,$999,$888,$777,$666,$555,$444,$333,$999,$888,$777,$666
  49.       Data $555,$444,$333,$999,$888,$777,$666,$555,$444,$333,$999
  50.       Data $888,$777,$666,$555,$444,$333,$58C,$BB0,$99F
  51.       Restore DAT4 : For OO=0 To 31 : Read P(OO) : Next OO
  52.    End If 
  53.    
  54.    If G=3
  55.       DAT5:
  56.       Data $0,$900,$A00,$B00,$C00,$D00,$E00,$F00,$90,$A0,$B0,$C0
  57.       Data $D0,$E0,$F0,$990,$AA0,$BB0,$CC0,$DD0,$EE0,$FF0,$49,$3A
  58.       Data $3B,$2C,$1D,$1E,$F,$58C,$BB0,$99F
  59.       Restore DAT5 : For OO=0 To 31 : Read P(OO) : Next OO
  60.    End If 
  61.    
  62.    For N=0 To 31 : Colour N,0 : Next N
  63.    Wait Vbl : Screen To Front 4 : Screen Show 4
  64.    
  65.    Do 
  66.       Gosub ACQUIRE
  67.       If TLP=>SETTING*2 : Exit : End If 
  68.       Inc TLP
  69.    Loop 
  70.    
  71.    Pop Proc
  72.    
  73.    ACQUIRE:
  74.    A=(Vumeter(0))+1 : CH1=0 : B=(Vumeter(1))+1 : CH2=0
  75.    C=(Vumeter(2))+1 : CH3=0 : D=(Vumeter(3))+1 : CH4=0
  76.    
  77.    If A>A1 Then A1=A
  78.    If A>A1 Then CH1=1
  79.    If B>B1 Then B1=B
  80.    If B>B1 Then CH2=1
  81.    If C>C1 Then C1=C
  82.    If C>C1 Then CH3=1
  83.    If D>D1 Then D1=D
  84.    If D>D1 Then CH4=1
  85.    
  86.    If CH1=0 Then A1=A1-1
  87.    If CH2=0 Then B1=B1-1
  88.    If CH3=0 Then C1=C1-1
  89.    If CH4=0 Then D1=D1-1
  90.    
  91.    If A1<0 Then A1=0
  92.    If B1<0 Then B1=0
  93.    If C1<0 Then C1=0
  94.    If D1<0 Then D1=0
  95.    
  96.    OO=1
  97.    P=A1/10 : If A1=>62 : P=7 : End If : Gosub _DRAW1
  98.    P=B1/10 : If B1=>62 : P=7 : End If : Gosub _DRAW2
  99.    P=C1/10 : If C1=>62 : P=7 : End If : Gosub _DRAW3
  100.    P=D1/10 : If D1=>62 : P=7 : End If : Gosub _DRAW4
  101.    
  102.    Return 
  103.    
  104.    _DRAW1:
  105.    If P=0 : Colour 1,0 : End If 
  106.    If P>0
  107.       For N=1 To P : Colour N,P(N) : Next N
  108.       If P<7 : For N=P+1 To 7 : Colour N,0 : Next N : End If 
  109.    End If 
  110.    Return 
  111.    
  112.    _DRAW2:
  113.    If P=0 : Colour 8,0 : End If 
  114.    If P>0
  115.       For N=1 To P : Colour N+7,P(N+7) : Next N
  116.       If P<7 : For N=7+(P+1) To 13 : Colour N,0 : Next N : End If 
  117.    End If 
  118.    Return 
  119.    
  120.    _DRAW3:
  121.    If P=0 : Colour 15,0 : End If 
  122.    If P>0
  123.       For N=1 To P : Colour N+14,P(N+14) : Next N
  124.       If P<7 : For N=14+(P+1) To 20 : Colour N,0 : Next N : End If 
  125.    End If 
  126.    Return 
  127.    
  128.    _DRAW4:
  129.    If P=0 : Colour 22,0 : End If 
  130.    If P>0
  131.       For N=1 To P : Colour N+21,P(N+21) : Next N
  132.       If P<7 : For N=21+(P+1) To 27 : Colour N,0 : Next N : End If 
  133.    End If 
  134.    Return 
  135. End Proc